package mx.ipn.pruebas;


import java.util.ArrayList;
import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class pruebaDAOS3 {
	public static void main(String args[]) {

		short resultado;
		
		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);

		FactorDAO factorDAO = fabricaMySQL.getFactorDAO();

		FactorTO factorTO = new FactorTO(0, (double) 40, (double) 4.5, "hibrido");

		// insert
		if (factorDAO.insertFactor(factorTO)) {
			factorDAO.insertFactor(factorTO);
			System.out.println("Insertado correctamente");
		} else
			System.out.println("Falla en la insercion");

		// borra
		resultado = factorDAO.deleteFactor(6);
		if (resultado == 1)
			System.out.println("Borrado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en el borrado");
		else if (resultado == -1)
			System.out.println("Ocurrio una excepcion al borrar");

		// actualiza
		factorTO.setIdFactor(2);
		factorTO.setBanderazo((double) 1);
		factorTO.setValor((double) 1);
		factorTO.setDescripcion("diurno");

		resultado = factorDAO.updateFactor(factorTO);
		if (resultado == 1)
			System.out.println("Actualizado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en la actualizacion");
		else if (resultado == -1)
			System.out.println("Ocurrio una excepcion");

		// Busca por id
		factorTO = factorDAO.findFactorById(2);
		if (factorTO != null) {
			System.out.println("Seleccion exitosa");

			System.out.println("FACTOR");
			System.out.println("id_factor: " + factorTO.getIdFactor());
			System.out.println("banderazo: " + factorTO.getBanderazo());
			System.out.println("valor: " + factorTO.getValor());
			System.out.println("descripcion: " + factorTO.getDescripcion());
			
		} else {
			System.out.println("Falla en la seleccion");
		}

		// ***********************************************************************************************
        // FACTURA
		System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<FACTURA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try{
		java.util.Date fecha;
		java.text.SimpleDateFormat simpleDaFo = new java.text.SimpleDateFormat("yyyy/MM/dd"); 
		fecha = simpleDaFo.parse("2008/01/01");
		
		java.sql.Date fechaSql = new java.sql.Date(fecha.getTime());
		
		FacturaDAO facturaDAO = fabricaMySQL.getFacturaDAO();
		FacturaTO facturaTO = new FacturaTO(0,"ninguna",fechaSql,(double)0.15,(double)100,(double)115);

		// insert
		if (facturaDAO.insertFactura(facturaTO)) {
			facturaDAO.insertFactura(facturaTO);
			System.out.println("Insertado correctamente");
		} else
			System.out.println("Falla en la insercion");

		// borra
		resultado = facturaDAO.deleteFactura(1);
		if (resultado == 1)
			System.out.println("Borrado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en el borrado");
		else if (resultado == -1)
			System.out.println("Ocurrio una excepcion al borrar");

		// actualiza
		facturaTO.setIdFactura(2);
		facturaTO.setIva((double).10);
		facturaTO.setTarifa((double) 200);
		facturaTO.setTotal((double) 20);

		resultado = facturaDAO.updateFactura(facturaTO);
		if (resultado == 1)
			System.out.println("Actualizado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en la actualizacion");
		else if (resultado == -1)
			System.out.println("Ocurrio una excepcion");

		// Busca por id
		facturaTO = facturaDAO.findFacturaById(2);
		if (facturaTO != null) {
			System.out.println("Seleccion exitosa");

			System.out.println("FACTURA");
			System.out.println("id_factura: " + facturaTO.getIdFactura());
			System.out.println("nota: " + facturaTO.getNota());
			System.out.println("fecha: " + facturaTO.getFecha());
			System.out.println("iva: " + facturaTO.getIva());
			System.out.println("tarifa: " + facturaTO.getTarifa());
			System.out.println("total: " + facturaTO.getTotal());

		} else {
			System.out.println("Falla en la seleccion");
		}
		
		System.out.println("**+SELECT FACTURA+**");
		ArrayList<FacturaTO> listFacturaTO = facturaDAO.selectFactura();
		for(int i=0;i<listFacturaTO.size();i++)
		{
			facturaTO = listFacturaTO.get(i);
			System.out.println("id_factura: " + facturaTO.getIdFactura());
			System.out.println("nota: " + facturaTO.getNota());
			System.out.println("fecha: " + facturaTO.getFecha());
			System.out.println("iva: " + facturaTO.getIva());
			System.out.println("tarifa: " + facturaTO.getTarifa());
			System.out.println("total: " + facturaTO.getTotal());
		}
		
		
		}
		catch(Exception e)
		{
			System.out.println("Ocurrio una excepcion");
		}
	}

}
